const dotenv = require('dotenv');
const app = require('./app');
const { sequelize } = require('./config/database');
const taskScheduler = require('./utils/taskScheduler');

// 加载环境变量
dotenv.config();

// 端口配置
const port = process.env.PORT || 3000;

// 启动服务器
const server = app.listen(port, async () => {
  try {
    // 连接数据库
    await sequelize.authenticate();
    console.log('数据库连接成功！');
    
    // 初始化预警任务调度器
    await taskScheduler.initWarningScheduler();
    
    console.log(`服务器正在运行，端口: ${port}`);
  } catch (error) {
    console.error('启动服务器失败:', error);
  }
});

// 处理未捕获的异常
process.on('uncaughtException', err => {
  console.error('未捕获的异常:', err);
  process.exit(1);
});

// 处理未处理的Promise拒绝
process.on('unhandledRejection', err => {
  console.error('未处理的Promise拒绝:', err);
  server.close(() => {
    process.exit(1);
  });
});

module.exports = server; 